package com.jxdinfo.hussar.cloud.module.example.tjjc.towernotice.service;

import com.jxdinfo.hussar.cloud.module.example.tjjc.towernotice.model.TowerNotice;
import com.jxdinfo.hussar.cloud.module.example.tjjc.towernotice.vo.AppTowerNoticeDetailVO;
import com.jxdinfo.hussar.cloud.module.example.tjjc.towernotice.vo.TowerNoticeSearchVO;
import com.jxdinfo.hussar.cloud.module.example.tjjc.towernotice.vo.TowerNoticeVO;
import com.jxdinfo.hussar.support.mp.base.service.HussarService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jxdinfo.hussar.cloud.module.example.tjjc.towernotice.vo.TowerNoticePageVO;
import com.jxdinfo.hussar.platform.core.base.apiresult.ApiResponse;

import java.util.List;

/**
 * 塔机异常通知服务类
 */
public interface TowerNoticeService extends HussarService<TowerNotice> {

    /**
     * 分页查询塔机异常通知
     *
     * @param towerNoticeSearchVO 分页对象
     * @return 查询结果
     */
    ApiResponse<TowerNoticePageVO> findByPage(TowerNoticeSearchVO towerNoticeSearchVO);

    /**
     * 塔机异常通知条件查询
     *
     * @param towerNoticeSearchVO 分页对象
     * @return 查询结果
     */
    ApiResponse<List<TowerNoticeVO>> findByList(TowerNoticeSearchVO towerNoticeSearchVO);

    /**
     * 移动端-分页获取塔机告警通知
     *
     * @param towerNoticeSearchVO 分页对象
     * @return 查询结果
     */
    ApiResponse<TowerNoticePageVO> findMobileByPage(TowerNoticeSearchVO towerNoticeSearchVO);

    /**
     * 移动端-获取塔机告警通知详情
     *
     * @param noticeId
     * @return 查询结果
     */
    ApiResponse<AppTowerNoticeDetailVO> findTowerNoticeDetail(String noticeId, String projectCode);

    /**
     * 塔机异常通知新增
     *
     * @param towerNoticeSearchVO 分页对象
     * @return 查询结果
     */
    ApiResponse<String> add(TowerNoticeSearchVO towerNoticeSearchVO);

    /**
     * 塔机异常通知修改
     *
     * @param towerNoticeSearchVO 分页对象
     * @return 查询结果
     */
    ApiResponse<String> updateTowerNotice(TowerNoticeSearchVO towerNoticeSearchVO);

    /**
     * 移动端-塔机异常通知一键已读
     *
     * @return 查询结果
     */
    ApiResponse<String> updateAllNoticeReadStatus(String tyProjectCode);

    /**
     * 塔机异常通知删除
     *
     * @param towerNoticeSearchVO 分页对象
     * @return 查询结果
     */
    ApiResponse<String> deleteById(TowerNoticeSearchVO towerNoticeSearchVO);
}
